---
title: SAIF.Application overview
summary: High-level purpose, scope, and responsibilities for the base Application-tier abstraction layer of the SAIF BOF stack.
status: draft
owner: SAIF BOF documentation team
last_reviewed: 2026-08-21
library: SAIF.Application
reference_type: embedded
---

# SAIF.Application overview

> **Documentation context:** Front-End Application Component
> **Documented via:** Legal (`Legal\Legal.vbproj`)

SAIF.Application is the base Application-tier abstraction layer of the SAIF BOF stack. It sits between the BOF Framework (`SAIF.BOF.Framework`) and concrete per-domain Application managers (e.g., `SAIF.Application.Claim`, `SAIF.Application.Claim.Legal`), defining the shared contract and plumbing that every concrete "AppManager" class in the solution must implement.*

## Purpose
- Define the abstract application-manager lifecycle contract, security-role state, context-set tracking, and message-accumulation facility shared by every concrete Application-tier manager in the solution.
- Bootstrap and register named SQL Server and/or Oracle data portals for use by concrete business/application objects, without authoring or executing any SQL itself.
- Provide a caching authorization contract over caller-supplied AD resource names, delegating the actual authorization decision to the framework's security principal.
- Provide a lighter-weight, non-`clsBusinessBase` service-manager base and service-oriented result contract for WCF/service-style application managers.

## Responsibilities
- Orchestrate the abstract lifecycle (`Initialize` → `OnInitialize` → `OnCreateDataLayer`; `OnCheckSecurity`; `OnTransactionStart`/`OnWrite`/`OnTransactionStop`; `OnRetrieve`) that every concrete `AppManagerBase` subclass must implement.
- Manage per-instance AD-resource authorization caching via `UserAccess`.
- Bootstrap named data portals via `ApplicationDataAccess`.
- Provide cross-cutting message-formatting utilities (`MessageFormatting`) for Windows- and Web-style display of accumulated messages.

## Key components
- `AppManagerBase`: abstract application-manager lifecycle contract, security-role state, and message accumulation.
- `ApplicationDataAccess`: data-portal bootstrap and registry (SQL Server / Oracle).
- `UserAccess`: AD resource authorization caching contract.
- `clsServiceAppManagerBase`: lightweight service-style application-manager base.
- `MessageFormatting`: static utility for concatenating message lists for display.
- `AppConstants`: minimal shared-constants holder.

## Related documentation
- [Index](index.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [Security and authorization](security-authorization.md)
- [API reference](api/index.md)

> **Note:** Statements marked with `*` were inferred from code structure, naming
> conventions, or contextual evidence where direct confirmation was not available
> in source artifacts.

## Sources
- `SAIF.Application\AppManagerBase.vb`
- `SAIF.Application\ApplicationDataAccess.vb`
- `SAIF.Application\UserAccess.vb`
- `SAIF.Application\clsServiceAppManagerBase.vb`
- `SAIF.Application\MessageFormatting.vb`
- `SAIF.Application\AppConstants.vb`
- `SAIF.Application\SAIF.Application.vbproj`
